9670:GetClientID should return the proper client info
Test_API_GetClientID(GLOBAL, NORMAL)
Test_VerifyClientID

9677:CanBind should return DRM_SUCCESS for valid binding info
Test_CreateBindingInfo(0 GLOBAL, VALID)
Test_API_CanBind(0 GLOBAL, NORMAL)

9685:DecryptLicense should decrypt license encrypted with the blackbox public key
Test_GenRandomBlob(0 GLOBAL, 5000 bytes)
Test_PKEncryptLarge(0 GLOBAL, 5000 bytes, 1 GLOBAL, 7)
Test_API_DecryptLicense(1 GLOBAL, 5000 bytes, 2 GLOBAL, NORMAL)
Test_BlobOps(memcmp, 0, 2, 5000 bytes)

9687:DRMBlackBox_Decrypt should be able to decrypt data encrypted by DRMBlackBox_Encrypt
Test_CreateBindingInfo(0 BindingInfo, VALID)
Test_API_CipherKeySetup(0 BindingInfo, 0 CipherContext, NORMAL BBContext)
Test_GenRandomBlob(0 GLOBAL, 16 bytes)
Test_GenRandomBlob(1 GLOBAL, 16 bytes)
Test_BlobOps(memcpy, 1 GLOBAL, 0 GLOBAL, 16 bytes)
Test_API_Encrypt(16, 0 GLOBAL, 0 CipherContext)
Test_BlobOps(memcmp, 0, 1, 16 bytes)=1(DRM_S_FALSE)
Test_RenewBlackboxContext
Test_API_CipherKeySetup(0 BindingInfo, 0 CipherContext, NORMAL BBContext)
Test_API_Decrypt(16, 0 GLOBAL, 0 CipherContext)
Test_BlobOps(memcmp, 0, 1, 16 bytes)

-------------------BVT ends here--------------------------

9671:GetClientID should reject NULL parameters
Test_API_GetClientID(NULL, NORMAL)=-2147024809(0X80070057 E_INVALIDARG)

9678:CanBind should fail if the binding info has wrong checksum
Test_CreateBindingInfo(0 GLOBAL, BAD_CHECKSUM)
Test_API_CanBind(0 GLOBAL, NORMAL)=1(DRM_S_FALSE)

9679:CanBind should fail if the binding info has wrong signature
Test_CreateBindingInfo(0 GLOBAL, BAD_SIGNATURE)
Test_API_CanBind(0 GLOBAL, NORMAL)=1(DRM_S_FALSE)

9680:CanBind should fail if the encrypted content key is modified
Test_CreateBindingInfo(0 GLOBAL, BAD_CONTENTKEY)
Test_API_CanBind(0 GLOBAL, NORMAL)=1(DRM_S_FALSE)

9681:CanBind should fail if the license server pubkey is bad
Test_CreateBindingInfo(0 GLOBAL, BAD_LSPUBKEY)
Test_API_CanBind(0 GLOBAL, NORMAL)=1(DRM_S_FALSE)

11619:CanBind should fail if the license server pubkey is wrong
Test_CreateBindingInfo(0 GLOBAL, WRONG_LSPUBKEY)
Test_API_CanBind(0 GLOBAL, NORMAL)=1(DRM_S_FALSE)

9705:CanBind should fail if the blackbox pubkey is modified
Test_CreateBindingInfo(0 GLOBAL, BAD_BBPUBKEY)
Test_API_CanBind(0 GLOBAL, NORMAL)=1(DRM_S_FALSE)

9706:CanBind should fail if the content key length is 0
Test_CreateBindingInfo(0 GLOBAL, KEY_LENGTH 0)
Test_API_CanBind(0 GLOBAL, NORMAL)=1(DRM_S_FALSE)

9707:CanBind should fail if the content key length is larger than 15 bytes
Test_CreateBindingInfo(0 GLOBAL, KEY_LENGTH 16)
Test_API_CanBind(0 GLOBAL, NORMAL)=1(DRM_S_FALSE)

9682:HashValue should hash the given data with blackbox's private key
Test_GenRandomBlob(0 GLOBAL, 100 bytes)
Test_API_HashValue(0 GLOBAL, 100 bytes, 2 Hash Value Index, NORMAL BB Context)
Test_GenRandomBlob(1 GLOBAL, 100 bytes)
Test_API_HashValue(1 GLOBAL, 100 bytes, 3 Hash Value Index, NORMAL BB Context)
Test_API_HashValue(0 GLOBAL, 100 bytes, 4 Hash Value Index, NORMAL BB Context)
Test_BlobOps(memcmp, 2 Hash Value Index, 3 Hash Value Index, 20)=1(DRM_S_FALSE)
Test_BlobOps(memcmp, 2 Hash Value Index, 4 Hash Value Index, 20)

9686:DecryptLicense should be able to decrypt license in place
Test_GenRandomBlob(0 GLOBAL, 5000 bytes)
Test_PKEncryptLarge(0 GLOBAL, 5000 bytes, 1 GLOBAL, 7)
Test_API_DecryptLicense(1 GLOBAL, 5000 bytes, NULL, NORMAL)
Test_BlobOps(memcmp, 0, 1, 5000 bytes)

9688:DRMBlackBox_Decrypt should be able to decrypt short data encrypted by DRMBlackBox_Encrypt
Test_CreateBindingInfo(0 BindingInfo, VALID)
Test_API_CipherKeySetup(0 BindingInfo, 0 CipherContext, NORMAL BBContext)
Test_GenRandomBlob(0 GLOBAL, 8 bytes)
Test_GenRandomBlob(1 GLOBAL, 8 bytes)
Test_BlobOps(memcpy, 1 GLOBAL, 0 GLOBAL, 8 bytes)
Test_API_Encrypt(8, 0 GLOBAL, 0 CipherContext)
Test_BlobOps(memcmp, 0, 1, 8 bytes)=1(DRM_S_FALSE)
Test_RenewBlackboxContext
Test_API_CipherKeySetup(0 BindingInfo, 0 CipherContext, NORMAL BBContext)
Test_API_Decrypt(8, 0 GLOBAL, 0 CipherContext)
Test_BlobOps(memcmp, 0, 1, 8 bytes)

9689:DRMBlackBox_Decrypt should be able to decrypt long data encrypted by DRMBlackBox_Encrypt
Test_CreateBindingInfo(0 BindingInfo, VALID)
Test_API_CipherKeySetup(0 BindingInfo, 0 CipherContext, NORMAL BBContext)
Test_GenRandomBlob(0 GLOBAL, 16000 bytes)
Test_GenRandomBlob(1 GLOBAL, 16000 bytes)
Test_BlobOps(memcpy, 1 GLOBAL, 0 GLOBAL, 16000 bytes)
Test_API_Encrypt(16000, 0 GLOBAL, 0 CipherContext)
Test_BlobOps(memcmp, 0, 1, 16000 bytes)=1(DRM_S_FALSE)
Test_RenewBlackboxContext
Test_API_CipherKeySetup(0 BindingInfo, 0 CipherContext, NORMAL BBContext)
Test_API_Decrypt(16000, 0 GLOBAL, 0 CipherContext)
Test_BlobOps(memcmp, 0, 1, 16000 bytes)
